Control-code-diagrams are also referred to as function-block-diagrams (FBD). They are user-created diagrams of application logic, and include interconnected graphical blocks that represent functions or logic.
In system- and software-engineering, these diagrams are used to describe the function of a technical system and the interrelationships between different systems. Engineers generate control-code by specifying control-code-diagrams. A control-code-diagram is a graphical language, exemplary for programmable logic controller design. The main elements of these diagrams are function-blocks and connections thereof. Function-blocks basically describe the function between input and output variables. Each connection line carries associated data from output ports to input ports of function-blocks or vice versa. Divergent connections are also available to broadcast information. To conclude, a control-code-diagram is a multi-tier, time sequenced, step-by-step flow diagram of a functional flow of any system.
These diagrams may contain the following key attributes: (i) function-blocks including a function which stands for a definite, finite, discrete action; and (ii) function-block-connections, which define the relationships between the function-blocks by connecting the input and output elements thereof.
A user may generate a control-code-diagram basically by performing the following steps: (i) in a first step, function-blocks are created in the model surface; (ii) in a second step, the function-blocks are wired by connecting the input and output ports of the function-blocks; and (iii) in a third step, parameters are used to configure the function-blocks according to the simulation.
After the user finishes the generation of the control-code-diagram, a simulation could be run directly in the control-code-diagram. In this case, scope blocks are usually specified in order to see and evaluate the simulated result.
Another way is to translate the control-code-diagram to control-code. The control-code can be used for a wide range of real-time and non-real-time applications, exemplary simulation acceleration, rapid prototyping or hardware-in-the-loop testing. The control-code might be used also to run on a controller or on a programmable logic controller (PLC).
Furthermore, indexed databases are known. An indexed database may include an index structure, which is separate from the data structure. By using an indexed database, the required time for searching and filtering the data is decreased. Indices consist of pointers, which define an order relation and a quick look-up access to one or several columns of the database.
However, there are drawbacks in known techniques. When specifying control-diagrams, the user does not get any suggestion on how to proceed with it. In case the user decides to adapt an existing control-diagram, the user has to notice that a similar control-diagram exists. This may be a problem for engineers who are new in a project, or for engineers who join an ongoing project. These engineers usually do not have the knowledge where to find similar existing control-diagrams, or do not even know where to search for it.